/*
Programma che:
  1) chiede all'utente di inserire quanti numeri interi vuole inserire nella sequenza (MAX 30);
  2) chiede all'utente di inserire i numeri interi che compongono la sequenza;
  3) verifica se la sequenza è palindroma (ovvero se non cambia ad essere letta dalla prima cella all’ultima o viceversa) o meno.

Es.
1 4 5 2 8 8 2 5 4 1 è palindromo
1 4 5 2 8 1 4 5 2 8 non è palindromo
*/

/* Costante necessaria solo se si utilizza Microsoft Visual Studio */
#define _CRT_SECURE_NO_WARNINGS 

#include <stdio.h>
#include <stdlib.h>

#define MAX_NUMERI 30 /* Lunghezza massima della sequenza */

int main() {
	
	int sequenza[MAX_NUMERI], lunghezzaSequenza, i;

	/* Chiedo di inserire quanto deve essere lunga la sequenza */
	/* Verifico che il numero inserito sia nell'intervallo [1 - MAX_NUMERI] */
	do {
		printf("Quanto deve essere lunga la sequenza [1 - %d]\? ", MAX_NUMERI);
		scanf("%d", &lunghezzaSequenza);

		if (lunghezzaSequenza < 1 || lunghezzaSequenza > MAX_NUMERI)
			printf("Il valore inserito non e\' valido!\n");

	} while (lunghezzaSequenza < 1 || lunghezzaSequenza > MAX_NUMERI);
	printf("\n");

	/* Chiedo di inserire i numeri che compongono la sequenza */
	for (i = 0; i < lunghezzaSequenza; i++) {
		printf("Inserisci il numero in posizione %d della sequenza: ", i + 1);
		scanf("%d", &sequenza[i]);
	}

	/* Verifico se la sequenza è palindroma o meno */
	for (i = 0; i < lunghezzaSequenza / 2; i++) {
		
		/* Verifico se il numero in posizione "i" e il suo corrispondente in posizione "lunghezzaSequenza - 1 - i" sono diversi */
		if (sequenza[i] != sequenza[lunghezzaSequenza - 1 - i])
			break; /* Non è una sequenza palindroma */
	}

	/* Visualizzo il risultato */
	/* Se sono uscito dal ciclo a causa del break => la sequenza non è palindroma */
	/* Se sono uscito dal ciclo a causa della condizione del for (i < lunghezzaSequenza / 2) => la sequenza è palindroma */
	if (i < lunghezzaSequenza / 2)
		printf("\nLa sequenza inserita non e\' palindroma\n");
	else
		printf("\nLa sequenza inserita e\' palindroma\n");

	/* Visualizzo anche la sequenza inserita */
	for (i = 0; i < lunghezzaSequenza; i++) 
		printf("%d ", sequenza[i]);

	return 0;
}

